//==============================================================================================================================================================
// Author(s): Roman Khmelichek, Wei Jiang
//==============================================================================================================================================================

#ifndef IR_TOOLKIT_H_
#define IR_TOOLKIT_H_

#include <cassert>
#include <cctype>
#include <cerrno>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <dirent.h>
#include <fstream>
#include <getopt.h>
#include <iostream>
#include <libgen.h>
#include <signal.h>
#include <sstream>
#include <stdint.h>
#include <string>
#include <vector>

#include "combination.h"
#include "configuration.h"
#include "config_file_properties.h"
#include "document_collection.h"
#include "index_cat.h"
#include "index_diff.h"
#include "index_layerify.h"
#include "index_merge.h"
#include "index_util.h"
#include "query_processor.h"
#include "timer.h"

//wei added library
#include <sys/stat.h>

using namespace std;

//wei want to comment the next line out.
class CollectionIndexer;

CollectionIndexer& GetCollectionIndexer();

void Index();

void Init();

void InstallSignalHandler();

int main(int argc, char** argv);

IndexFiles ParseIndexName(const char* index_name);

void SetConfigurationOption(string key_value);

void SignalHandlerIndex(int sig);

void UnrecognizedOptionValue(const char* option_name, const char* option_value);

#endif /* IR_TOOLKIT_H_ */
